//package com.zuofei.springcloud.websocketservice.ws;
//
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import javax.websocket.OnClose;
//import javax.websocket.OnMessage;
//import javax.websocket.Session;
//import javax.websocket.server.ServerEndpoint;
//import java.util.concurrent.ConcurrentHashMap;
//
//
//@Slf4j
//@Component
//@ServerEndpoint("/websocket")
//public class WebSocket {
//
//    private Session session;
//
//    private String name;
//
//    /**
//     *  用于存所有的连接服务的客户端，这个对象存储是安全的
//     */
//    private static ConcurrentHashMap<String,WebSocket> webSocketSet = new ConcurrentHashMap<>();
//
//    @OnClose
//    public void OnClose(){
//        webSocketSet.remove(this.name);
//        log.info("[WebSocket] 退出成功，当前连接人数为：={}",webSocketSet.size());
//    }
//
//    @OnMessage
//    public void OnMessage(String message){
//        log.info("[WebSocket] 收到消息：{}",message);
//        //判断是否需要指定发送，具体规则自定义
//        if(message.indexOf("TOUSER") == 0){
//            String name = message.substring(message.indexOf("TOUSER")+6,message.indexOf(";"));
//            AppointSending(name,message.substring(message.indexOf(";")+1,message.length()));
//        }else{
//            GroupSending(message);
//        }
//
//    }
//
//    /**
//     * 群发
//     * @param message
//     */
//    public void GroupSending(String message){
//        for (String name : webSocketSet.keySet()){
//            try {
//                webSocketSet.get(name).session.getBasicRemote().sendText(message);
//            }catch (Exception e){
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * 指定发送
//     * @param name
//     * @param message
//     */
//    public void AppointSending(String name,String message){
//        try {
//            webSocketSet.get(name).session.getBasicRemote().sendText(message);
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//    }
//}
